/**
 * 重要日期相关API服务
 */

const http = require('./http');

/**
 * 添加重要日期
 * @param {Object} data 重要日期数据 {coupleId, name, dateType, baseDate, isYearly, notes}
 * @returns {Promise} Promise对象
 */
const addImportantDate = (data) => {
  return http.post('/api/important-dates', data);
};

/**
 * 获取情侣重要日期列表
 * @param {Number} coupleId 情侣关系ID
 * @returns {Promise} Promise对象
 */
const getCoupleImportantDates = (coupleId) => {
  return http.get(`/api/couples/${coupleId}/important-dates`);
};

/**
 * 获取重要日期详情
 * @param {Number} id 重要日期ID
 * @returns {Promise} Promise对象
 */
const getImportantDateDetail = (id) => {
  return http.get(`/api/important-dates/${id}`);
};

/**
 * 更新重要日期
 * @param {Number} id 重要日期ID
 * @param {Object} data 重要日期数据 {name, baseDate, isYearly, notes}
 * @returns {Promise} Promise对象
 */
const updateImportantDate = (id, data) => {
  return http.put(`/api/important-dates/${id}`, data);
};

/**
 * 删除重要日期
 * @param {Number} id 重要日期ID
 * @returns {Promise} Promise对象
 */
const deleteImportantDate = (id) => {
  return http.del(`/api/important-dates/${id}`);
};

/**
 * 获取最近的重要日期提醒
 * @param {Number} coupleId 情侣关系ID
 * @param {Number} days 提前天数，默认30天
 * @returns {Promise} Promise对象
 */
const getUpcomingReminders = (coupleId, days = 30) => {
  return http.get(`/api/couples/${coupleId}/important-dates/upcoming`, { days });
};

module.exports = {
  addImportantDate,
  getCoupleImportantDates,
  getImportantDateDetail,
  updateImportantDate,
  deleteImportantDate,
  getUpcomingReminders
};